package com.ysx.oa.resume.dao;

import com.ysx.oa.resume.Bean.QuestionBean;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;

/**
 * @author 黄德标
 * @date 2021/11/20 19:35
 */
@Repository
public interface QuestionDao {

    /**
     * 方法描述: 新增一个面试问题
     * @author: 黄德标
     * @date: 2021/11/20 19:37
     * @params: [questionBean]
     * @returns: 返回1 则添加成功
     */
    Integer addQuestion(QuestionBean questionBean);

    /**
     * 方法描述: 根据面试问题的ID，从面试问题表中删除一条记录
     * @author: 黄德标
     * @date: 2021/11/20 21:01
     * @params: [questionId]
     * @returns: 返回1 则删除成功
     */
    Integer deleteQuestionByQuestionId(Integer questionId);

    /**
     * 方法描述: 根据 questionEntity参数中的 ID 进行修改内容（只能更新面试问题和学生的回答）
     * @author: 黄德标
     * @date: 2021/11/20 20:41
     * @params: [questionBean]
     * @returns: 返回1 则修改成功
     */
    Integer updateQuestion(QuestionBean questionBean);

    /**
     * 方法描述: 根据 ID 查询 面试问题表中的记录
     * @author: 黄德标
     * @date: 2021/11/20 21:21
     * @params: [questionId]
     * @returns: QuestionBean对象
     */
    QuestionBean selectQuestionBeanByQuestionId(Integer questionId);

    /**
     * 方法描述: 根据 resumeID 查询 面试问题表中的记录
     * @author: 黄德标
     * @date: 2021/11/20 21:49
     * @params: [resumeId]
     * @returns: 装有QuestionBean对象的集合
     */
    ArrayList<QuestionBean> selectQuestionBeanByResumeId(Integer resumeId);

    /**
     * 方法描述: 根据 studentId 查询 面试问题表中的记录
     * @author: 黄德标
     * @date: 2021/11/20 22:00
     * @params: [studentId]
     * @returns: 装有QuestionBean对象的集合
     */
    ArrayList<QuestionBean> selectQuestionBeanByStudentId(Integer studentId);

    /**
     * 方法描述: 根据 学生的班级ID 查询 此班 所有的学生 的面试问题表中的记录
     * @author: 黄德标
     * @date: 2021/11/20 22:23
     * @params: [classId]
     * @returns: 装有QuestionBean对象的集合
     */
    ArrayList<QuestionBean> selectQuestionBeanByClassId(Integer classId);

    /**
     * 方法描述: 根据 班级ID 查询 此班 所有的学生 的面试问题表中 老师还未填写答案 的记录
     * @author: 黄德标
     * @date: 2021/11/21 15:35
     * @params: [classId]
     * @returns: 装有QuestionBean对象的集合
     */
    ArrayList<QuestionBean> selectNullTeacherAnswerQuestionBeanByClassId(Integer classId);

    /**
     * 方法描述: 根据 老师ID 查询 已经填写过答案 的面试问题表中的记录
     * @author: 黄德标
     * @date: 2021/11/21 15:20
     * @params: [teacherId]
     * @returns: 装有QuestionBean对象的集合
     */
    ArrayList<QuestionBean> selectNotNullTeacherAnswerQuestionBeanByClassId(Integer teacherId);

    /**
     * 方法描述: 查询 面试问题表 所有记录
     * @author: 黄德标
     * @date: 2021/11/20 22:22
     * @returns: 装有QuestionBean对象的集合
     */
    ArrayList<QuestionBean> selectAll();

    /**
     * 方法描述: 根据 resumeId 查询 此学生这个面试 问题的数量
     * @author: 黄德标
     * @date: 2021/11/22 21:39
     * @param: resumeId
     * @return: java.lang.Integer
     */
    Integer selectQuestionCountByResumeId(Integer resumeId);

    /**
     * 方法描述: 根据 questionId 判断 老师答案是否为空
     * @author: 黄德标
     * @date: 2021/11/21 16:34
     * @params: [questionId]
     * @returns: 返回0 则为空
     */
    Integer checkTeacherAnswerIsNullByQuestionId(Integer questionId);

}
